package com.test.dao;

import com.test.bean.*;
import com.test.bean.ReStudent;
import com.test.bean.Student;
import com.test.bean.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
public interface UserDao {

    //登录
    //由于该查询语句较为简单，所以可以直接在@Select注解中写SQL语句
    @Select("select * from User where User_name = #{username} and User_password = #{pwd} and User_identify=#{ptype}")
    User queryForLogin(User user);

    //注册
    //sql语句在mapper-user.xml文件中编写
    void insertUser(User user);

    //用户名已存在
    @Select("select * from User where User_name = #{username}")
    User queryForReg(String username);

    void changePassword(User user);
  

    //根据id删除一个用户
    int deleteUserById(int id);

    //更新用户
    int updateUser(User user);

    //根据id查询,返回一个用户
    User queryUserById(int id);

    //查询全部用户,返回list集合
    List<User> queryAllUser();

//添加学生信息——单条
    void addStudent(Student student);

//删除学生信息
    void deleteStudent(Student student);

//    修改学生信息
    void changeStudent(Student student);

// 查询学生信息
    Student queryStudent(int id);

//  学生自身信息查询
    List<queryStudent> queryStudent1(int id);

// 多条件查询学生信息
    List<queryStudent> queryStudents(Student student);

    //  学生奖助信息录入——单条
    void addReStudent(ReStudent restudent);

    //  奖助学金信息修改
    void changeRestudent(ReStudent restudent);

    //    学生奖助信息查询
    ReStudent queryRestudent(ReStudent reStudent);

    //奖助信息查询 返回数组
    List<Student_Reward> queryRestudent1(int id);

    //    奖助学金信息删除
    void deleteReStudent(ReStudent restudent);

     // 档案信息单条录入
    void addRecord(Stu_Record record);

    //档案信息查询
    List<Stu_Record> queryRecord(int id);

    //学生选课信息单条录入
    void addCourse(Stu_Course stu_course);

    //谈心谈话录入
    void addTalk(Daily_Talk talk);

     //谈心谈话查询
    List<Daily_Talk> queryTalk(int id);

    //  课程信息查询
    Course queryCourse(int course_id);

    //查课录入
    void addCheck(Daily_Check check);

    //违纪录入
    void addDiscipline(Daily_Discipline daily_discipline);

    //不良行为查询
    List<Daily_Bad> queryDailybad(int id);

    //查寝录入
    void addDormissue(Daily_Dormissue daily_dormissue);

    //特殊学生录入
    void addEspecial(Daily_especial daily_especial);

    //特殊学生更新
    void updateEspecial(Daily_especial daily_especial);

    //特殊学生删除
    void deleteEspecial(Daily_especial daily_especial);

     //图书信息增加
    void addBook(Book book);

    //图书查询
    Book queryBook(int id);

    //图书信息删除
    void deleteBook(Book book);

    //党员信息单条录入
    void addPartymember(Party_member party_member);

    //党员信息查询
    db_Party_member queryPartymem(int id);

    //党员信息删除
    void deletePartymem(int id);

    //党支部信息单条录入
    void addPartybranch(Party_branch party_branch);

    //党支部信息查询
    Party_branch_db queryPartybranch(String branch_name);

    //党支部信息删除
    void deletePartybranch(String branch_name);

    //党员信息更新
    void  updatePartymem(Party_member party_member);

    //党支部信息更新
    void  updatePartybranch(Party_branch party_branch);

    //入党事件录入
    void addPartyissue(Party_issue party_issue);

}
